! function (e, n) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = n() : "function" == typeof define && define.amd ? define(n) : (e = e || self).uni = n()
}(this, (function () {
    "use strict";
    try {
        var e = {};
        Object.defineProperty(e, "passive", {
            get: function () {
                !0
            }
        }), window.addEventListener("test-passive", null, e)
    } catch (e) {}
    var n = Object.prototype.hasOwnProperty;

    function i(e, i) {
        return n.call(e, i)
    }
    var t = [];

    function o() {
        return window.__dcloud_weex_postMessage || window.__dcloud_weex_
    }

    function a() {
        return window.__uniapp_x_postMessage || window.__uniapp_x_
    }
    var r = function (e, n) {
            var i = {
                options: {
                    timestamp: +new Date
                },
                name: e,
                arg: n
            };
            if (a()) {
                if ("postMessage" === e) {
                    var r = {
                        data: n
                    };
                    return window.__uniapp_x_postMessage ? window.__uniapp_x_postMessage(r) : window.__uniapp_x_.postMessage(JSON.stringify(r))
                }
                var d = {
                    type: "WEB_INVOKE_APPSERVICE",
                    args: {
                        data: i,
                        webviewIds: t
                    }
                };
                window.__uniapp_x_postMessage ? window.__uniapp_x_postMessageToService(d) : window.__uniapp_x_.postMessageToService(JSON.stringify(d))
            } else if (o()) {
                if ("postMessage" === e) {
                    var s = {
                        data: [n]
                    };
                    return window.__dcloud_weex_postMessage ? window.__dcloud_weex_postMessage(s) : window.__dcloud_weex_.postMessage(JSON.stringify(s))
                }
                var w = {
                    type: "WEB_INVOKE_APPSERVICE",
                    args: {
                        data: i,
                        webviewIds: t
                    }
                };
                window.__dcloud_weex_postMessage ? window.__dcloud_weex_postMessageToService(w) : window.__dcloud_weex_.postMessageToService(JSON.stringify(w))
            } else {
                if (!window.plus) return window.parent.postMessage({
                    type: "WEB_INVOKE_APPSERVICE",
                    data: i,
                    pageId: ""
                }, "*");
                if (0 === t.length) {
                    var u = plus.webview.currentWebview();
                    if (!u) throw new Error("plus.webview.currentWebview() is undefined");
                    var g = u.parent(),
                        v = "";
                    v = g ? g.id : u.id, t.push(v)
                }
                if (plus.webview.getWebviewById("__uniapp__service")) plus.webview.postMessageToUniNView({
                    type: "WEB_INVOKE_APPSERVICE",
                    args: {
                        data: i,
                        webviewIds: t
                    }
                }, "__uniapp__service");
                else {
                    var c = JSON.stringify(i);
                    plus.webview.getLaunchWebview().evalJS('UniPlusBridge.subscribeHandler("'.concat("WEB_INVOKE_APPSERVICE", '",').concat(c, ",").concat(JSON.stringify(t), ");"))
                }
            }
        },
        d = {
            navigateTo: function () {
                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
                    n = e.url;
                r("navigateTo", {
                    url: encodeURI(n)
                })
            },
            navigateBack: function () {
                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
                    n = e.delta;
                r("navigateBack", {
                    delta: parseInt(n) || 1
                })
            },
            switchTab: function () {
                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
                    n = e.url;
                r("switchTab", {
                    url: encodeURI(n)
                })
            },
            reLaunch: function () {
                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
                    n = e.url;
                r("reLaunch", {
                    url: encodeURI(n)
                })
            },
            redirectTo: function () {
                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
                    n = e.url;
                r("redirectTo", {
                    url: encodeURI(n)
                })
            },
            getEnv: function (e) {
                a() ? e({
                    uvue: !0
                }) : o() ? e({
                    nvue: !0
                }) : window.plus ? e({
                    plus: !0
                }) : e({
                    h5: !0
                })
            },
            postMessage: function () {
                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
                r("postMessage", e.data || {})
            }
        },
        s = /uni-app/i.test(navigator.userAgent),
        w = /Html5Plus/i.test(navigator.userAgent),
        u = /complete|loaded|interactive/;
    var g = window.my && navigator.userAgent.indexOf(["t", "n", "e", "i", "l", "C", "y", "a", "p", "i", "l", "A"].reverse().join("")) > -1;
    var v = window.swan && window.swan.webView && /swan/i.test(navigator.userAgent);
    var c = window.qq && window.qq.miniProgram && /QQ/i.test(navigator.userAgent) && /miniProgram/i.test(navigator.userAgent);
    var p = window.tt && window.tt.miniProgram && /toutiaomicroapp/i.test(navigator.userAgent);
    var _ = window.wx && window.wx.miniProgram && /micromessenger/i.test(navigator.userAgent) && /miniProgram/i.test(navigator.userAgent);
    var m = window.qa && /quickapp/i.test(navigator.userAgent);
    var f = window.ks && window.ks.miniProgram && /micromessenger/i.test(navigator.userAgent) && /miniProgram/i.test(navigator.userAgent);
    var l = window.tt && window.tt.miniProgram && /Lark|Feishu/i.test(navigator.userAgent);
    var E = window.jd && window.jd.miniProgram && /micromessenger/i.test(navigator.userAgent) && /miniProgram/i.test(navigator.userAgent);
    var x = window.xhs && window.xhs.miniProgram && /xhsminiapp/i.test(navigator.userAgent);
    for (var S, h = function () {
            window.UniAppJSBridge = !0, document.dispatchEvent(new CustomEvent("UniAppJSBridgeReady", {
                bubbles: !0,
                cancelable: !0
            }))
        }, y = [function (e) {
            if (s || w) return window.__uniapp_x_postMessage || window.__uniapp_x_ || window.__dcloud_weex_postMessage || window.__dcloud_weex_ ? document.addEventListener("DOMContentLoaded", e) : window.plus && u.test(document.readyState) ? setTimeout(e, 0) : document.addEventListener("plusready", e), d
        }, function (e) {
            if (_) return window.WeixinJSBridge && window.WeixinJSBridge.invoke ? setTimeout(e, 0) : document.addEventListener("WeixinJSBridgeReady", e), window.wx.miniProgram
        }, function (e) {
            if (c) return window.QQJSBridge && window.QQJSBridge.invoke ? setTimeout(e, 0) : document.addEventListener("QQJSBridgeReady", e), window.qq.miniProgram
        }, function (e) {
            if (g) {
                document.addEventListener("DOMContentLoaded", e);
                var n = window.my;
                return {
                    navigateTo: n.navigateTo,
                    navigateBack: n.navigateBack,
                    switchTab: n.switchTab,
                    reLaunch: n.reLaunch,
                    redirectTo: n.redirectTo,
                    postMessage: n.postMessage,
                    getEnv: n.getEnv
                }
            }
        }, function (e) {
            if (v) return document.addEventListener("DOMContentLoaded", e), window.swan.webView
        }, function (e) {
            if (p) return document.addEventListener("DOMContentLoaded", e), window.tt.miniProgram
        }, function (e) {
            if (m) {
                window.QaJSBridge && window.QaJSBridge.invoke ? setTimeout(e, 0) : document.addEventListener("QaJSBridgeReady", e);
                var n = window.qa;
                return {
                    navigateTo: n.navigateTo,
                    navigateBack: n.navigateBack,
                    switchTab: n.switchTab,
                    reLaunch: n.reLaunch,
                    redirectTo: n.redirectTo,
                    postMessage: n.postMessage,
                    getEnv: n.getEnv
                }
            }
        }, function (e) {
            if (f) return window.WeixinJSBridge && window.WeixinJSBridge.invoke ? setTimeout(e, 0) : document.addEventListener("WeixinJSBridgeReady", e), window.ks.miniProgram
        }, function (e) {
            if (l) return document.addEventListener("DOMContentLoaded", e), window.tt.miniProgram
        }, function (e) {
            if (E) return window.JDJSBridgeReady && window.JDJSBridgeReady.invoke ? setTimeout(e, 0) : document.addEventListener("JDJSBridgeReady", e), window.jd.miniProgram
        }, function (e) {
            if (x) return window.xhs.miniProgram
        }, function (e) {
            return document.addEventListener("DOMContentLoaded", e), d
        }], M = 0; M < y.length && !(S = y[M](h)); M++);
    S || (S = {});
    var P = "undefined" != typeof uni ? uni : {};
    if (!P.navigateTo)
        for (var b in S) i(S, b) && (P[b] = S[b]);
    return P.webView = S, P
}));